#define _CRT_SECURE_NO_WARNINGS 1
//class Solution {
//public:
//    ListNode* getIntersectionNode(ListNode* headA, ListNode* headB)
//    {
//        ListNode* cur1 = headA, * cur2 = headB;
//        int lenA = 1, lenB = 1;
//        while (cur1->next)
//        {
//            cur1 = cur1->next;
//            lenA++;
//        }
//        while (cur2->next)
//        {
//            cur2 = cur2->next;
//            lenB++;
//        }
//        if (cur1->next != cur2->next) return nullptr;
//        int gap = abs(lenA - lenB);
//        ListNode* longList = headA, * shortList = headB;
//        if (lenB > lenA)
//        {
//            longList = headB;
//            shortList = headA;
//        }
//        while (gap--)
//        {
//            longList = longList->next;
//        }
//        while (longList != shortList)
//        {
//            longList = longList->next;
//            shortList = shortList->next;
//        }
//        return longList;
//    }
//};